﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using System.Web.Routing;
using System.Web.Security;
using TracNghiem.Areas.Admin.Models;
using System.Collections;

namespace TracNghiem.Areas.Admin.Controllers
{
    [Authorize(Roles="admin")]
    public class UserController : Controller
    {
        //
        // GET: /Admin/User/
        UserModel user_ = new UserModel();
        DonviModel DonviModel = new DonviModel();
        public ActionResult Index()
        {
            List<UserModel> u = user_.getUser(); 
            return View(u);
        }
        public ActionResult AddUser()
        {
            List<DonviModel> donviModel = DonviModel.getDonvi();
            user_.trungtam_id = new SelectList(donviModel, "id", "name");
            return View(user_);
        }
        [HttpPost]
        public ActionResult AddUser(UserModel us)
        {
            List<DonviModel> donviModel = DonviModel.getDonvi();            
            if (ModelState.IsValid)
            {
                if (user_.checkExist(us) > 0)
                {
                    TempData["msg"] = "Tên đăng nhập đã tồn tại!";
                    us.trungtam_id = new SelectList(donviModel, "id", "name");
                    return View(us);
                }
                us.trang_thai = Request["trang_thai"];
                user_.addUser(us);
                TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
                return RedirectToAction("Index");
            }
            TempData["msg"] = "Bạn đã nhập sai thông tin!";
            us.trungtam_id = new SelectList(donviModel, "id", "name");
            return View(us);
        }
        public ActionResult EditUser(int id)
        {
            UserModel us = user_.getUser().Find(delegate(UserModel u) { return u.id == id.ToString(); });
            List<DonviModel> donviModel = DonviModel.getDonvi();
            us.trungtam_id = new SelectList(donviModel, "id", "name");
            return View(us);
        }
        [HttpPost]
        public ActionResult EditUser(UserModel us)
        {
            List<DonviModel> donviModel = DonviModel.getDonvi();
            if (ModelState.IsValid)
            {
                us.trang_thai = Request["trang_thai"];
                user_.updateUser(us);
                TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
                return RedirectToAction("Index");
            }
            TempData["msg"] = "Bạn đã nhập sai thông tin!";
            us.trungtam_id = new SelectList(donviModel, "id", "name");
            return View(us);
        }
        public ActionResult DeleteUser(int id)
        {
            user_.deleteUser(id);
            List<UserModel> u = user_.getUser();
            TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
            return RedirectToAction("Index");
        }
        [HttpPost]
        public ActionResult CheckedAction(int[] Items)
        {
            foreach (int item in Items)
            {
                user_.deleteUser(item);
            }
            List<UserModel> u = user_.getUser();
            TempData["msg"] = "Thông tin mới đã được cập nhật thành công!";
            return RedirectToAction("Index");
        }

    }
}
